//  description 命令描述

var program = require('commander');

program
  .version('0.0.1', '-V, --version')
  .command('rm <dir>') //如果command有第二个参数，会自动使用子命令，所以 node demo6 rm aaa 会报错
  .description("this is description")
  .description("this is description2")
  .option('-r, --recursive', 'Remove recursively')
  .action(function (dir, cmd) {
    console.log('remove ' + dir + (cmd.recursive ? ' recursively' : ''))
  });

program.parse(process.argv);


/* 

用来描述命令，也就是命令的说明，上面说过command第二个参数也同样是命令的描述，
当与description同时存在的话，则会优先于第二个参数的描述，description则会作为全局描述在最顶部显示。该描述只用在使用-HELP的时候才能看见。

写多个 description 会启用最后一个






// command 有第二个参数     
                                                                                                                                                      ✖ ⚑ ✚ ◒  
▶ node demo6 -h
Usage: demo6 [options] [command]

this is description2

Options:
  -V, --version    output the version number
  -r, --recursive  Remove recursively
  -h, --help       display help for command

Commands:
  rm <dir>         arg is description




// command 无第二个参数        
                                                                                                                                                    ✖ ⚑ ✚ ◒  
▶ node demo6 -h
Usage: demo6 [options] [command]

Options:
  -V, --version       output the version number
  -h, --help          display help for command

Commands:
  rm [options] <dir>  this is description2
  help [command]      display help for command


 */